//package com.isoftstone.util;
//
//import com.isoftstone.common.utils.DateUtils;
//import com.isoftstone.framework.domain.PageData;
//import org.apache.commons.lang3.StringUtils;
//import org.apache.poi.hssf.usermodel.HSSFCellStyle;
//import org.apache.poi.hssf.usermodel.HSSFFont;
//import org.apache.poi.ss.usermodel.*;
//import org.apache.poi.ss.util.CellRangeAddress;
//import org.springframework.web.servlet.view.document.AbstractXlsView;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.net.URLEncoder;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//import java.util.Map;
//
///**
//* 导入到EXCEL
//* 类名称：ObjectExcelView.java
//* @version 1.0
// */
//public class ObjectExcelView extends AbstractXlsView {
//
//	/**
//	 *
//	 * @param model name：文件名字  titles:第一行  头
//	 *            varList：数据
//	 *            mergedRegion：true 是否开启合并单元格   mergedRegionVar：0,1  合并的列  mergedRegionCell：var2 根据var2合并
//	 * @param workbook
//	 * @param httpServletRequest
//	 * @param response
//	 * @throws Exception
//	 */
//	@Override
//	protected void buildExcelDocument(Map<String, Object> model, Workbook workbook, HttpServletRequest httpServletRequest, HttpServletResponse response) throws Exception {
//		Date date = new Date();
//		String filename = DateUtils.dateTimeNow();
//		Cell cell;
//		response.setContentType("application/octet-stream");
////
//		String name = (String) model.get("name");
//		if(StringUtils.isNotBlank(name)){
//			filename = name;
//		}
//		response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(filename, "utf-8")+".xls");
//		Sheet sheet = workbook.createSheet("sheet1");
//
//		List<String> titles = (List<String>) model.get("titles");
//		boolean mergedRegion = false;
//		String mergedRegionVar = null;
//		String mergedRegionCell = null;
//		if(model.get("mergedRegion")!=null){
//			mergedRegion = (Boolean) model.get("mergedRegion");
//			mergedRegionVar = (String) model.get("mergedRegionVar");
//			mergedRegionCell = (String) model.get("mergedRegionCell");
//		}
//
//		int len = titles.size();
//		CellStyle cellStyle = workbook.createCellStyle();//标题样式
//		cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//		cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
//		Font font = workbook.createFont();//标题字体
//		font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
//		font.setFontHeightInPoints((short)11);
//		cellStyle.setFont(font);
//		short width = 20,height=25*20;
//		sheet.setDefaultColumnWidth(width);
//		for(int i=0; i<len; i++){ //设置标题
//			String title = titles.get(i);
//			cell = getCell(sheet, 0, i);
//			cell.setCellStyle(cellStyle);
//			setText(cell,title);
//		}
//		sheet.getRow(0).setHeight(height);
//
//		CellStyle contentStyle = workbook.createCellStyle();//内容样式
//		contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//		List<PageData> varList = (List<PageData>) model.get("varList");
//		if(varList != null){
//			int varCount = varList.size();
//
//			String oneCell = "";
//
//			List<Integer[]> row = new ArrayList<>();
//			int firstRow = 0;
//			int lastRow = 0;
//			for(int i=0; i<varCount; i++){
//				PageData vpd = varList.get(i);
//
//				for(int j=0;j<len;j++){
//					String varstr = vpd.getString("var"+(j+1)) != null ? vpd.getString("var"+(j+1)) : "";
//					cell = getCell(sheet, i+1, j);
//					cell.setCellStyle(contentStyle);
//					setText(cell,varstr);
//				}
//				if(mergedRegion){
//					if(oneCell.equals("")){
//						oneCell = vpd.getString(mergedRegionCell);
//					}
//					if(!oneCell.equals(vpd.getString(mergedRegionCell))){
//						oneCell = vpd.getString(mergedRegionCell);
//						firstRow = lastRow + 1;
//
//						lastRow = i;
//
////						if(lastRow == firstRow){
////							lastRow  = i + 1;
////						}
//						row.add(new Integer[]{firstRow,lastRow});
//					}
//				}
//			}
//
//			if(mergedRegion){
//				String[] split = mergedRegionVar.split(",");
//
//				for (Integer[] integers : row) {
//					for (String s : split) {
//						//第0行起 第0行终止 第0列开始 第1列结束。
//						if(integers[0] != integers[1]){
//							sheet.addMergedRegion(new CellRangeAddress(integers[0],integers[1],Integer.parseInt(s),Integer.parseInt(s)));
//
//						}
//					}
//				}
//
//			}
//		}
//
//
//	}
//
//	protected Cell getCell(Sheet sheet, int row, int col) {
//		Row sheetRow = sheet.getRow(row);
//		if (sheetRow == null) {
//			sheetRow = sheet.createRow(row);
//		}
//
//		Cell cell = sheetRow.getCell(col);
//		if (cell == null) {
//			cell = sheetRow.createCell(col);
//		}
//
//		return cell;
//	}
//
//	protected void setText(Cell cell, String text) {
//		cell.setCellType(1);
//		cell.setCellValue(text);
//	}
//}
